package Testing;


import DAO.CounterDAO;
import DAO.StatusDAO;
import DAO.TagDAO;
import DAO.UserDAO;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import pojo.Status;

/**
 *
 * @author ngochuy
 */
import org.apache.cassandra.thrift.*;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
import pojo.Counter;
import pojo.Page;
import pojo.Tag;

public class apptien
{
    public static void main(String[] args) throws Exception
    {
        try {
            TTransport tr = new TFramedTransport(new TSocket(common.Constants.HOST, common.Constants.PORT));
            TProtocol proto = new TBinaryProtocol(tr);
            Cassandra.Client client = new Cassandra.Client(proto);
            tr.open();
            
            client.set_keyspace(common.Constants.KEYSPACE);
            TagDAO tag_DAO = TagDAO.getInstance(client);
            System.out.println(tag_DAO.searchTags("vui", "0", "10", "1"));
            
//            String[] listname = {"chúc tết","tiền","break up","châm biếm",
//                                 "châm ngôn sống","cuộc sống","failure",
//                                 "gia đình","heart","hài hước","hôn nhân",
//                                 "life","love","lời hay ý đẹp","mới nhất",
//                                 "phụ nữ","thành công","tình bạn","tình cảm",
//                                 "tình yêu","vui vẻ","đàn ông"};
//            for (int j=0; j<listname.length;j++)
//            {
//                Tag newTag = new Tag();
//
////                List<String> liststatusID = new ArrayList<String>();
////                Random rd = new Random();
////                for (int i = 0; i < rd.nextInt(4) + 3; i++)
////                    liststatusID.add(Integer.toString(rd.nextInt(20)+2));
//                newTag.setName_tag(listname[j]);
//                //newTag.setList_status_ID(liststatusID);
//
//                if (tag_DAO.InsertTag(newTag))
//                    System.out.println("Insert thành công");
//            }
////            if (tag_DAO.RemoveTag("Tình yêu"));
////                System.out.println("Remove thành công");
            
//            StatusDAO sta_DAO = StatusDAO.getInstance(client);
//            Status newstatus = new Status();
//            newstatus.setContent("Người ta có thể quên đi điều bạn nói, nhưng những gì bạn để lại trong lòng họ thì không bao giờ nhạt phai." );
//            newstatus.setTags("tình bạn");
//            Random rd = new Random();
//            
//            newstatus.setLike_count(Integer.toString(rd.nextInt(30)));
//            newstatus.setDislike_count(Integer.toString(rd.nextInt(30)));
//            if (sta_DAO.insertStatus(newstatus))
//                System.out.println("Insert thành công");
            
            
            
//            StatusDAO status_DAO = StatusDAO.getInstance(client);
//            String result = status_DAO.SelectRandom();
//            System.out.println(result);
            
//            CounterDAO cdao = CounterDAO.getInstance(client);
//            cdao.setCounterStatusGlobal();
//            cdao.setCounterTagGlobal();
            //cdao.Inscrease(Counter.key_tag);
           //cdao.Decrease(Counter.key_tag);
            
            StatusDAO st = StatusDAO.getInstance(client);
            System.out.printf(st.listPaging("200"));
            //List<String> a = new ArrayList<String>();
            //a.add("sdfdf");
            //boolean result  = st.DeleteStatus(a);
            String a = "sfsd\nfdsf";
            a = st.selectStatusFromID("e4eab4b8-ccef-486f-bbef-1126de164e42");
            System.out.println(a);
            //System.out.println(result);
            //st.insertStatus("If you haven't found it yet, keep looking. Don't settle", "thành công");
//            Page page = new Page("[B@ad25d0", 3);            
//            for(int i = 0; i < 10; i++){
//            String result = st.listStatus(page);
//                System.out.println("-------------------Begin Page: " + i + "----------------");
//                System.out.println(result);
//                System.out.println("-------------------End: Page: " + i + "----------------");
//            }
            
            //st.listPhanTrang_Test(3);
//            String a = st.listOutstandingStatus();
//            System.out.println(a);
            //List<String> listStatusID = st.SelectAllStatusTag("cuộc sống");
            //System.out.println(listStatusID);
            //for(String statusID: listStatusID){
            //    System.out.println(statusID);
           // }
            //st.removeTagInStatus("bf0212f5-774d-4064-9b0c-3f24de129d47", "chúc tết");
              //TagDAO tag = TagDAO.getInstance(client);
            //String[] listname = {"châm biếm"};
            //tag.updateStateTag(listname, "public");
            //st.insertStatus("Đừng quên mỉm cười trong cuộc sống.", "châm ngôn sống");
//            String a = st.SelectNoTag();
//            System.out.println(a);
//            TagDAO tag = TagDAO.getInstance(client);
//            System.out.print(tag.PrintALLTag());
              //st.updateStateStatus(listname, "private");
              //System.out.println(a);
              //tag.RemoveTag("chúc tết");
//            cdao.setCounterStatusGlobal();
//            cdao.setCounterTagGlobal();
//            Counter c = new Counter();
//            c.setCounter_ID(Counter.key_status);
//            c.setCounter("70");
//            if (cdao.setCounter(c))
//                System.out.println("Insert thành công");
//            UserDAO user = UserDAO.getInstance(client);
//            List<String> listUser = new ArrayList<String>();
//            listUser.add("1");
//            listUser.add("2");
//            boolean  rs = user.setBannedUser(listUser, "1");
//            if(rs){
//                System.out.println("vl");
//            }
                
            
            tr.close();
        } catch (InvalidRequestException ex) {
            Logger.getLogger(apptien.class.getName()).log(Level.SEVERE, null, ex);
        } catch (TException ex) {
            Logger.getLogger(apptien.class.getName()).log(Level.SEVERE, null, ex);
        } 
    }
}


